
package com.hlkj.pay.vo.order.resp.export;
/*
 * Hlpay-Plus aggregate payment system.
 * Copyright (c) 2024-2025 Hlpay Team Copyright has the right of final interpretation.
 */

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.hlkj.pay.util.excel.OrdersStateConverter;
import com.hlkj.pay.util.excel.TimestampToDateConverter;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * @author HlpayTeam
 * @date 2024/10/09 11:37
 */
@Data
public class PayOrderFileExport {

    @Schema(description = "商户订单号")
    @ExcelProperty("商户订单号")
    @ColumnWidth(20)
    private String mchOrderNo;

    @Schema(description = "平台订单号")
    @ExcelProperty("平台订单号")
    @ColumnWidth(20)
    private String payOrderNo;

    @Schema(description = "渠道订单号 第三方渠道订单号")
    @ExcelProperty("渠道订单号")
    @ColumnWidth(20)
    private String channelOrderNo;

    @Schema(description = "支付机构订单号 微信支付宝等平台订单号")
    @ExcelProperty("支付机构订单号")
    @ColumnWidth(25)
    private String insOrderNo;

    @Schema(description = "商户号")
    @ExcelProperty("商户号")
    @ColumnWidth(20)
    private String sn;

    @Schema(description = "只有条码支付才会返回，条码订单状态，订单状态，1=初始化，2=支付中，3=支付成功，4=已撤销，5=订单关闭 6=订单关闭中 7=支付失败")
    @ExcelProperty(value = "订单状态", converter = OrdersStateConverter.class)
    @ColumnWidth(20)
    private Integer state;

    @Schema(description = "订单金额 单位元")
    @ExcelProperty("订单金额")
    @ColumnWidth(20)
    private String amount;

    @Schema(description = "实际支付金额 单位元")
    @ExcelProperty("记账金额")
    @ColumnWidth(20)
    private String payAmount;

    @Schema(description = "平台扣手续费")
    @ExcelProperty("平台手续费")
    @ColumnWidth(20)
    private String feeAmount;

    @Schema(description = "通道扣手续费")
    @ExcelProperty("通道手续费")
    @ColumnWidth(20)
    private String channelFeeAmount;

    @Schema(description = "实际记账金额")
    @ExcelProperty("实际记账金额")
    @ColumnWidth(20)
    private String settlementAmount;

    @Schema(description = "商品标题")
    @ExcelProperty("商品标题")
    @ColumnWidth(20)
    private String subject;

    @Schema(description = "appid")
    @ExcelProperty("应用APPID")
    @ColumnWidth(20)
    private String appId;

    @Schema(description = "创建时间")
    @ExcelProperty(value = "订单创建时间", converter = TimestampToDateConverter.class)
    @ColumnWidth(25)
    private Long createTime;

    @Schema(description = "订单成功时间")
    @ExcelProperty(value = "订单成功时间", converter = TimestampToDateConverter.class)
    @ColumnWidth(25)
    private Long successTime;
    
}
